package algoritmo.seleccion;

import java.util.ArrayList;
import java.util.List;

import poblacion.Cromosoma;
import poblacion.Poblacion;

public class SelectorTorneo implements Selector{

	@Override
	public Poblacion seleccionar(Poblacion poblacion) {
		
		Poblacion result = new Poblacion();
		
		int indiceMedio = (poblacion.getCromosomas().size()/2);
		List<Cromosoma> primeraMitad = poblacion.getCromosomas().subList(0, indiceMedio);
		List<Cromosoma> segundaMitad = poblacion.getCromosomas().subList(indiceMedio, poblacion.getCromosomas().size());
		//Collections.reverse(segundaMitad);
		List<Cromosoma> nueva = new ArrayList<Cromosoma>();
		
		for (int i = 0; i < primeraMitad.size(); i++) {
			nueva.add(new Cromosoma(primeraMitad.get(i)));
			nueva.add(new Cromosoma(segundaMitad.get(i)));
		}
		
		result.setCromosomas(nueva);
		
		return result;
	}

}
